10 GRAPH
20 LOCATE 2,4:PRINT "      ս":LOCATE 3,6:PRINT "˫˶ս"
30 LOCATE 4,5:PRINT "Version 1.00":K$=INKEY$:GRAPH
40 OPEN "SeaMPData" FOR RANDOM AS #1:IF LOF(1)=0 THEN 50 ELSE 80
50 CLOSE #1:PRINT "ERROR","    ļѰʧܣִSeaMPSignUp.BAS"
60 LOCATE 5,9:PRINT "ȷ";:BOX 64,64,95,81,1,2
70 K=ASC(INKEY$):IF K=13 THEN POKE 199,155 ELSE BEEP: GOTO 70
80 CLOSE #1
85 CLEAR:GRAPH:LOCATE 3,6:PRINT "Loading ..."
90 DIM SEA(2,10,10),SN$(5),WEA$(4,3),RA$(6),NW(2,3,3),NBW(2,3,3)
100 OPEN "SeaMPData" FOR INPUT AS #1
110 FOR I=1 TO 5:INPUT #1,SN$(I):NEXT I
120 FOR M=1 TO 4: FOR N=1 TO 3:INPUT #1,WEA$(M,N):NEXT N:NEXT M
130 FOR I=1 TO 6:INPUT #1,HK$(I):NEXT I
140 INPUT #1,CLEAN$
150 FOR I=1 TO 6:INPUT #1,RA$(I):NEXT I
160 CLOSE #1:GRAPH
170 PRINT "***    ˵    ***","    [ͳ溣ս]","    [溣ս]","    [ Ϣ ]"
180 PRINT "    [ 뿪Ϸ ]";:CHO=1:CHE=0
190 IF CHE<>0 THEN BOX 32,CHE*16,127,(CHE+1)*16-1,1,2
200 BOX 32,CHO*16,127,(CHO+1)*16-1,1,2
210 K=ASC(INKEY$)
220 IF K=20 AND CHO>1 THEN CHE=CHO:CHO=CHO-1: GOTO 190
230 IF K=21 AND CHO<4 THEN CHE=CHO:CHO=CHO+1: GOTO 190
240 IF K=13 THEN 270
250 IF K=27 THEN POKE 199,155
260 BEEP: GOTO 210
270 ON CHO GOTO 320,320,290,280
280 POKE 199,155
290 GRAPH
300 PRINT "汾v1.00","ƣLyster.S.K","дLyster.S.K","QQ27138435","<>";
310 K=ASC(INKEY$):IF K=27 THEN GRAPH: GOTO 170 ELSE 310
320 KI=CHO
325 FOR I=1 TO 2
330 TEXT :PRINT "Player";I;" ":INPUT "] ";N$(I)
340 IF LEN(N$(I))=0 THEN GRAPH: GOTO 85
350 IF KI=1 THEN 480
360 OPEN "SD"+N$(I) FOR RANDOM AS #1:IF LOF(1)=0 THEN 370 ELSE 380
370 CLOSE #1:GRAPH:BEEP:PRINT "ûδעᣬ롣":K$=INKEY$: GOTO 330
380 CLOSE #1
385 IF N$(2)=N$(1) THEN 390 ELSE 395
390 GRAPH:PRINT "ûѵ¼":K$=INKEY$: GOTO 330 
395 OPEN "SD"+N$(I) FOR INPUT AS #1
400 INPUT #1,N$(I),PAS$(I),MO(I),SC(I),RA(I)
410 FOR X=1 TO 3: FOR Y=1 TO 3:INPUT #1,NW(I,X,Y):NEXT Y:NEXT X
420 CLOSE #1
430 PRINT "룺":INPUT "] ";PASS$(I)
440 IF PASS$(I)<>PAS$(I) THEN 450 ELSE 460
450 GRAPH:PRINT "Ч룡":BEEP:K$=INKEY$:TEXT : GOTO 430
460 GRAPH:PRINT N$(I),RA$(RA(I)),"¼ɹ","Player ";I," ...";
470 K$=INKEY$
480 NEXT I
485 IF KI=1 THEN 830
490 DATA 5,5,5,4,3,2,5,3,4: FOR I=1 TO 9:READ VE(I):NEXT I
510 FOR I=1 TO 2:GRAPH:MENU=1:CHO=1:CHE=0
520 PRINT "Player ";I;"ѡװ":LOCATE 5,1:PRINT "<>";
530 FOR M=2 TO 4
540 LOCATE M,1:PRINT CLEAN$;"  ":LOCATE M,1:PRINT WEA$(MENU,M-1)
545 IF MENU=2 OR MENU=3 THEN LOCATE M,18:PRINT HK$((MENU-2)*3+M-1)
550 NEXT M
560 IF CHE<>0 THEN 570 ELSE 580
570 BOX 1,CHE*16,160,CHE*16+15,1,2
580 BOX 1,CHO*16,160,CHO*16+15,1,2
590 K=ASC(INKEY$)
600 IF K=20 AND CHO>1 THEN CHE=CHO:CHO=CHO-1: GOTO 560
610 IF K=21 AND CHO<3 THEN CHE=CHO:CHO=CHO+1: GOTO 560
620 IF K=48 AND MENU=1 THEN 820
630 IF K=13 THEN 650
635 IF K=27 AND MENU<>1 THEN MENU=1:CHO=1:CHE=0:LOCATE 5,1:PRINT "<>";: GOTO 530
640 BEEP: GOTO 590
650 IF MENU=1 THEN MENU=CHO+1:CHO=1:CHE=0:LOCATE 5,1:PRINT "<>";: GOTO 530
660 GRAPH:A=MENU:B=CHO:C=(MENU-2)*3+CHO
670 PRINT WEA$(A,B),"װ";SN$(VE(C)),""
680 PRINT "װ","<U>װ <D>ж <C>ȷ";
690 LOCATE 3,11:PRINT NW(I,A-1,B);" ":LOCATE 4,11:PRINT NBW(I,A-1,B);" "
700 K$=INKEY$
710 IF A=4 THEN 760
720 IF K$="u" AND NW(I,A-1,B)>0 THEN NW(I,A-1,B)=NW(I,A-1,B)-1 ELSE 740
730 NBW(I,A-1,B)=NBW(I,A-1,B)+1: GOTO 690
740 IF K$="d" AND NBW(I,A-1,B)>0 THEN NBW(I,A-1,B)=NBW(I,A-1,B)-1 ELSE 790
750 NW(I,A-1,B)=NW(I,A-1,B)+1: GOTO 690
760 IF K$="u" AND NW(I,A-1,B)>0 AND NBW(I,A-1,B)<1 THEN NW(I,A-1,B)=NW(I,A-1,B)-1 ELSE 780
770 NBW(I,A-1,B)=1: GOTO 690
780 IF K$="d" AND NBW(I,A-1,B)=1 THEN NW(I,A-1,B)=NW(I,A-1,B)+1 ELSE 790
785 NBW(I,A-1,B)=0: GOTO 690
790 IF K$="c" THEN CLS:MENU=1:CHE=0:CHO=1: GOTO 520
800 BEEP: GOTO 700
820 NEXT I
830 GRAPH:LOCATE 1,11:PRINT "":LOCATE 2,11:PRINT "P2":LOCATE 3,9:PRINT "P1"
840 LOCATE 4,9:PRINT ""
850 FOR I=1 TO 11
860 LINE 3,6*I-4,63,6*I-4:LINE 6*I-3,2,6*I-3,62
870 LINE 157,6*I-4,98,6*I-4:LINE 163-6*I,2,163-6*I,62
875 NEXT I
880 FOR I=1 TO 2:SL(I,1)=2:SL(I,2)=3:SL(I,3)=4:SL(I,4)=4:SL(I,5)=5:NEXT I
890 FOR I=1 TO 2
900 LOCATE 5,1:PRINT CLEAN$;:LOCATE 5,1:PRINT "Player ";I;"𽢶";:K$=INKEY$
910 FOR M=5 TO 1 STEP -1
920 JX=1:JY=1:WL=SL(I,M):EJX=0:EJY=0:EDR=1:DR=1
930 LOCATE 5,1:PRINT CLEAN$;:LOCATE 5,1:PRINT "벿";SN$(M);
940 IF EJX<>0 THEN 950 ELSE 1000
950 FOR N=1 TO WL:U=I-1:V=EJX+N-1:W=EJY+N-1
960 ON EDR GOTO 970,980
970 BOX U*94+V*6-1,6*EJY-2,U*94+V*6+2,6*EJY+1,1,2: GOTO 990
980 BOX U*94+EJX*6-1,6*W-2,U*94+EJX*6+2,6*W+1,1,2
990 NEXT N
1000 IF EDR<>DR THEN EDR=DR
1010 FOR N=1 TO WL:U=I-1:V=JX+N-1:W=JY+N-1
1020 ON DR GOTO 1030,1040
1030 BOX U*94+V*6-1,6*JY-2,U*94+V*6+2,6*JY+1,1,2: GOTO 1050
1040 BOX U*94+JX*6-1,6*W-2,U*94+JX*6+2,6*W+1,1,2
1050 NEXT N
1060 K=ASC(INKEY$)
1070 IF K=20 AND JY>1 THEN EJY=JY:EJX=JX:JY=JY-1: GOTO 950
1080 IF K=23 AND JX>1 THEN EJY=JY:EJX=JX:JX=JX-1: GOTO 950
1090 ON DR GOTO 1100,1130
1100 IF K=22 AND JX<11-WL THEN EJX=JX:EJY=JY:JX=JX+1: GOTO 950
1110 IF K=21 AND JY<10 THEN EJX=JX:EJY=JY:JY=JY+1: GOTO 950
1120 GOTO 1150
1130 IF K=22 AND JX<10 THEN EJX=JX:EJY=JY:JX=JX+1: GOTO 950
1140 IF K=21 AND JY<11-WL THEN EJX=JX:EJY=JY:JY=JY+1: GOTO 950
1150 IF K=99 AND JX<12-WL AND JY<12-WL THEN EDR=DR:EJX=JX:EJY=JY:DR=3-DR: GOTO 950
1160 IF K=13 THEN 1180
1170 BEEP: GOTO 1060
1180 FOR N=1 TO WL
1190 ON DR GOTO 1200,1210
1200 IF SEA(I,JX+N-1,JY)=0 THEN 1220 ELSE 1170
1210 IF SEA(I,JX,JY+N-1)=0 THEN 1220 ELSE 1170
1220 NEXT N
1230 LOCATE 5,1:PRINT CLEAN$;:LOCATE 5,1:PRINT "ȷY/N";:K$=INKEY$
1240 IF K$="y" THEN 1250 ELSE LOCATE 5,1:PRINT CLEAN$;: GOTO 1245
1245 LOCATE 5,1:PRINT "벿";SN$(M);: GOTO 1060
1250 FOR N=1 TO WL
1260 ON DR GOTO 1270,1280
1270 SEA(I,JX+N-1,JY)=M: GOTO 1290
1280 SEA(I,JX,JY+N-1)=M
1290 NEXT N
1300 NEXT M
1310 LOCATE 5,1:PRINT CLEAN$;:LOCATE 5,1:PRINT "Ժ ...";
1320 FOR X=1 TO 10
1330 FOR Y=1 TO 10
1340 IF SEA(I,X,Y)<>0 THEN BOX (I-1)*94+X*6-2,6*Y-3,(I-1)*94+X*6+2,6*Y+1,1,0
1350 LINE (I-1)*94+X*6-1,6*Y+1,(I-1)*94+X*6+2,6*Y+1
1360 LINE (I-1)*94+X*6+2,6*Y-2,(I-1)*94+X*6+2,6*Y+1
1370 NEXT Y:NEXT X
1380 NEXT I
1390 LOCATE 5,1:PRINT CLEAN$;:LOCATE 5,1:PRINT "սʼ";:K$=INKEY$
1400 FOR I=1 TO 2:HX=5:HY=5:NEXT I
1410 FOR I=1 TO 2:T=0:U=3-I:V=2-I
1420 LOCATE 5,1:PRINT CLEAN$;:LOCATE 5,1:PRINT N$(I);"'s turn";
1430 IF EX<>0 THEN BOX V*94+EX*6-2,EY*6-3,V*94+EX*6+2,EY*6+1,1,2
1440 BOX V*94+HX*6-2,HY*6-3,V*94+HX*6+2,HY*6+1,1,2
1450 K=ASC(INKEY$)
1460 IF K=23 AND HX>1 THEN EX=HX:EY=HY:HX=HX-1: GOTO 1430
1470 IF K=22 AND HX<10 THEN EX=HX:EY=HY:HX=HX+1: GOTO 1430
1480 IF K=21 AND HY<10 THEN EX=HX:EY=HY:HY=HY+1: GOTO 1430
1490 IF K=20 AND HY>1 THEN EX=HX:EY=HY:HY=HY-1: GOTO 1430
1500 IF K=13 THEN EX=0:EY=0:HK=1: GOTO 1610
1510 IF KI=1 THEN BEEP: GOTO 1450
1520 IF K=113 AND T=0 AND NBW(I,1,1)<>0 THEN EX=0:EY=0:HK=2: GOTO 1610
1530 IF K=97 AND T=0 AND NBW(I,1,2)<>0 THEN EX=0:EY=0:HK=3: GOTO 1610
1540 IF K=122 AND T=0 AND NBW(I,1,3)<>0 THEN EX=0:EY=0:HK=4: GOTO 1610
1550 IF K=119 AND NBW(I,2,1)<>0 AND T=0 THEN EX=0:EY=0:HK=5: GOTO 1610
1560 IF K=115 AND NBW(I,2,2)<>0 AND T=0 THEN EX=0:EY=0:HK=6: GOTO 1610
1570 IF K=120 AND T=0 AND NBW(I,2,3)<>0 THEN EX=0:EY=0:HK=7: GOTO 1610
1580 BEEP: GOTO 1450
1590 NEXT I
1600 GOTO 1410
1610 IF SEA(U,HX,HY)>5 THEN 1580
1615 AG=NBW(U,3,2):RG=NBW(I,3,1):PG=NBW(I,3,3):LOCATE 5,1:PRINT CLEAN$;
1620 IF HK<>1 AND T=0 THEN A=INT((HK-1.1)/3):B=HK-A*3-1 ELSE 1625
1622 IF HK>4 THEN NBW(I,A+1,B)=NBW(I,A+1,B)-1
1623 LOCATE 5,1:PRINT "ʹ";WEA$(A+2,B);:K$=INKEY$:LOCATE 5,1:PRINT CLEAN$;
1625 BOX V*94+HX*6-2,HY*6-3,V*94+HX*6+2,HY*6+1,1,2
1630 ON HK GOTO 1640,2170,2170,2170,1640,1640,1640
1640 IF RND(1)<AG/2 THEN 1650 ELSE 1670
1650 LOCATE 5,1:PRINT "";
1660 K=ASC(INKEY$):IF K=48 THEN 1590 ELSE BEEP: GOTO 1660
1670 IF SEA(U,HX,HY)=0 AND PG=1 THEN 1730 ELSE 1675
1675 IF SEA(U,HX,HY)=0 THEN 1680 ELSE 1810
1680 SEA(U,HX,HY)=6:LOCATE 5,1:PRINT "ʲôҲû򵽡";
1690 BOX V*94+HX*6-2,HY*6-3,V*94+HX*6+2,HY*6+1,1,0
1700 LINE V*94+HX*6-2,HY*6-3,V*94+HX*6+2,HY*6+1
1710 LINE V*94+HX*6+2,HY*6-3,V*94+HX*6-2,HY*6+1
1720 IF HK<>6 AND HK<>7 AND T=0 THEN 1660 ELSE 1780
1730 FOR X=-1 TO 1: FOR Y=-1 TO 1:P=HX+X:Q=HY+Y
1740 IF P>10 OR P<1 OR Q>10 OR Q<1 THEN 1760
1745 IF HK>2 AND HK<5 AND SEA(U,P,Q)<6 THEN BOX V*94+P*6-2,Q*6-3,V*94+P*6+2,Q*6+1,1,0
1750 IF SEA(U,P,Q)>0 AND SEA(U,P,Q)<6 AND HK>2 AND HK<5 THEN DRAW V*94+P*6,Q*6-1: GOTO 1760
1755 IF SEA(U,P,Q)>0 AND SEA(U,P,Q)<6 THEN 1800 
1760 NEXT Y:NEXT X
1770 IF HK<3 OR HK>4 THEN 1680 ELSE 2190
1780 K=ASC(INKEY$):IF K=48 THEN 1785 ELSE 1780
1785 IF T=0 THEN T=HK-4
1790 T=T-1:IF T>0 THEN 1420 ELSE T=0: GOTO 1590
1800 HX=HX+X:HY=HY+Y
1810 SI=SEA(U,HX,HY):IF HK=5 THEN SL(U,SI)=0 ELSE SL(U,SI)=SL(U,SI)-1
1820 IF HK<>5 THEN 1910
1830 FOR N=1 TO 10
1840 IF SEA(U,HX,N)=SI THEN 1850 ELSE 1860
1850 BOX V*94+HX*6-1,N*6-2,V*94+HX*6+2,N*6+1,1:SEA(U,HX,N)=7
1860 NEXT N
1870 FOR N=1 TO 10
1880 IF SEA(U,N,HY)=SI THEN 1890 ELSE 1900
1890 BOX V*94+N*6-1,HY*6-2,V*94+N*6+2,HY*6+1,1:SEA(U,N,HY)=7
1900 NEXT N
1910 IF SL(U,SI)=0 THEN 1920 ELSE 1990
1920 S(I)=S(I)+1:LOCATE 5,1:PRINT "";SN$(SI);
1925 BOX V*94+HX*6-1,HY*6-2,V*94+HX*6+2,HY*6+1,1:SEA(U,HX,HY)=7
1930 ON 6-SI GOTO 1940,1950,1960,1970,1980
1940 FOR N=1 TO 3:NBW(U,1,N)=0:NEXT N:NBW(U,3,1)=0: GOTO 1980
1950 NBW(U,2,1)=0:NBW(U,3,3)=0: GOTO 1980
1960 NBW(U,2,2)=0:NBW(U,3,2)=0: GOTO 1980
1970 NBW(U,2,3)=0
1980 IF S(I)=5 THEN W=I: GOTO 2020 ELSE 2010
1990 BOX V*94+HX*6-1,HY*6-2,V*94+HX*6+2,HY*6+1,1:SEA(U,HX,HY)=7
2000 LOCATE 5,1:PRINT "е";SN$(SI);
2010 IF HK<>6 OR HK<>7 THEN 1780 ELSE 1660
2020 LOCATE 5,1:PRINT CLEAN$;:LOCATE 5,1:PRINT N$(W);"ʤ";:U=W-1
2025 FOR X=1 TO 10: FOR Y=1 TO 10
2030 IF SEA(W,X,Y)>0 AND SEA(W,X,Y)<6 THEN BOX 94*U+X*6-1,Y*6-2,94*U+X*6+2,Y*6+1
2033 NEXT Y:NEXT X
2035 K=ASC(INKEY$):IF K=48 THEN 2040 ELSE 2035
2040 IF KI=1 THEN 85
2045 GRAPH:V=3-W
2050 PRINT N$(W);"Ļ֣";SC(W)+3,N$(V);"Ļ֣";SC(V)-1
2060 SC(W)=SC(W)+3:SC(V)=SC(V)-1:MO(W)=MO(W)+8000
2070 FOR I=1 TO 2
2080 MO(I)=MO(I)+12000:IF SC(I)<0 THEN SC(I)=0
2090 RA(I)=INT(SQR(SC(I)/200))+1:IF RA(I)>6 THEN RA(I)=6
2105 FOR X=1 TO 3: FOR Y=1 TO 3:NW(I,X,Y)=NW(I,X,Y)+NBW(I,X,Y):NEXT Y:NEXT X
2107 NEXT I
2110 FOR I=1 TO 2
2120 OPEN "SD"+N$(I) FOR OUTPUT AS #1
2130 WRITE #1,N$(I),PAS$(I),MO(I),SC(I),RA(I)
2140 FOR X=1 TO 3: FOR Y=1 TO 3:WRITE #1,NW(I,X,Y):NEXT Y:NEXT X:CLOSE #1:NEXT I
2160 K$=INKEY$: GOTO 85
2170 IF RND(1)>0.48*(AG*2+1)/(RG+1)/(HK-1) THEN 1730 
2180 LOCATE 5,1:PRINT "ɻ";:NBW(I,A+1,B)=NBW(I,A+1,B)-1: GOTO 1660
2190 LOCATE 5,1:PRINT "ػ";: GOTO 1660
